package com.tanhua.api.impl.mongo;

import com.tanhua.api.mongo.TanHuaUserApi;
import com.tanhua.domain.mongo.Friend;
import com.tanhua.domain.mongo.UserLove;
import com.tanhua.domain.mongo.UserNlove;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;

import java.util.ArrayList;
import java.util.List;

@Service
public class TanHuaUserApimpl implements TanHuaUserApi {


    @Autowired
    private MongoTemplate mongoTemplate;

    @Override
    public void saveLove(Long Myid,Long userLove) {
        //先查询一下我喜欢的人在我点之前有没有喜欢我
        Query query = new Query(Criteria.where("userId").is(userLove).and("loveUserId").is(Myid));
        UserLove userLove1= mongoTemplate.findOne(query, UserLove.class);
        //如果有，就把我们两个的LOVE表中的数据删除，分别添加我们两个到friend表中
        if (userLove1!=null){
            System.out.println("对方也喜欢我，加好友");
            //移除我喜欢的这个人在UserLove表中的数据
            mongoTemplate.remove(userLove1);
            //所以这里就不添加自己的数据到UserLove表中
            Friend LoveUser = new Friend();
            LoveUser.setFriendId(Myid);
            LoveUser.setUserId(userLove);
            mongoTemplate.save(LoveUser);


            Friend Me=new Friend();
            Me.setUserId(Myid);
            Me.setFriendId(userLove);
            mongoTemplate.save(Me);

            System.out.println("加好友结束");

        }else {
            //如果我喜欢的人没有喜欢我，就把我的数据存入userlove表中
            UserLove LoveUser = new UserLove();
            LoveUser.setUserId(Myid);
            LoveUser.setLoveUserId(userLove);
            mongoTemplate.save(LoveUser);
        }

    }

    @Override
    public void saveNlove(UserNlove userNlove) {
        mongoTemplate.save(userNlove);
    }

    public List<Long> findLoveMeUser(Long Myid){

        Query query = new Query(Criteria.where("loveUserId").is(Myid));
        query.skip(1).limit(5);
        List<UserLove> userLoves = mongoTemplate.find(query, UserLove.class);
        List<Long> LoveMeUserId=new ArrayList<>();
        for (UserLove userLove : userLoves) {
            LoveMeUserId.add(userLove.getUserId());
        }
        return LoveMeUserId;
    }

}